import { DependencyContainer } from "tsyringe";
export interface ICondition {
    signal(): void;
    await(): void;
}
export interface IVector<T = any> {
    add(val: T): void;
    remove(val: T): void;
    set(idx: number, val: T): void;
    contains(val: T): boolean;
    isEmpty(): boolean;
    clear(): void;
    size(): number;
    get(idx: number): T;
}
import type { AtomicLong, ReentrantLock, Disposable as TDisposable } from 'threads'

export interface ITask {
    start(cb: (container: DependencyContainer) => void): void;
    atomic(): AtomicLong;
    sync(fn: Function): Function;
    lock(): ReentrantLock;
    vector(): IVector;
    disposable<T>(): TDisposable;
}